
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author jéssica e isa
 */
public class Controle {
    public int lotcomp, ingresso, ingresso_, lotcomp_, msg=0, msg2=0;
    public String nome, numero, lotacao, ingvend_, lotacao_;
    ArrayList<Sala> sala = new ArrayList();
    ArrayList<Sessao> sessao = new ArrayList();

    
    
    public String insereSessao(String nome, String data, String horario, String ingvend, String numsala){
        if(!"".equals(nome)){
            msg = 2;
            if(!"".equals(ingvend)){
                msg = 1;
                for(Sala i : sala){
                    if(i.getSala().equals(numsala)){
                        lotacao_ = i.getLotacao();
                    }
                }
                lotcomp_ = Integer.parseInt(lotacao_);
                ingresso_ = Integer.parseInt(ingvend);
                if(ingresso_ <= lotcomp_){        
                    sessao.add(new Sessao(nome, data, horario, ingvend, numsala));
                    msg = 0;
                    return "Inserção concluída com sucesso";
                }
            }
        }
        if(msg == 0 ){
            return "ERRO: nome do filme precisa ser preenchido";
        }
        if(msg == 1){
           msg = 0;
           return "ERRO: número de ingressos vendidos maior que lotação da sala";
        }
        if(msg == 2){
            msg = 0;
            return "ERRO: numero de ingressos precisa ser preenchido";
        }
        return "";
    }
    
    
    public String insereSala(String numsala_, String lotacao){
        if(!"".equals(numsala_)){           //numsala != ""
            msg2 = 1;
            if(!"".equals(lotacao)){
                sala.add(new Sala(numsala_, lotacao)); 
                msg2 = 0;
                return "Inserção concluída com sucesso";
            }
        }
        if(msg2 ==0){
            return "ERRO: número da sala precisa ser preenchido";
        }
        if(msg2 == 1){
            msg2=0;
            return "ERRO: ocupação precisa ser preenchida";
        }
        return "";
    }
    
    public String venderIngresso(String nomefilme){
        pegaLotacao(nomefilme);
        if(lotcomp > ingresso){
            ingresso++;
            for (Sessao s : sessao){                        //achar nome do filme digitado no ArrayList sessao
                if(s.getNomeSessao().equals(nomefilme)){
                    s.setNumIng(Integer.toString(ingresso));     //atualiza ingressos vendidos
                }
            }
            return "Venda concluída com sucesso";
        }
        return "Sessão lotada";
    }
    
    public void pegaLotacao(String _nomefilme){
        for (Sessao s : sessao){                        //procurar nome do filme no ArrayList sessao
            if(s.getNomeSessao().equals(_nomefilme)){
                numero = s.getNumSessao();              //pegar numero da sala
                ingvend_ = s.getIngressoVend();          //pegar ingresos vendidos
            }
        }
        for (Sala s : sala){                        //procura numero da sala correspondente a sessao 
            if(s.getSala().equals(numero)){
                lotacao = s.getLotacao();           //pega lotacao da sala
            }
        }
        lotcomp = Integer.parseInt(lotacao);        //converte pra int
        ingresso = Integer.parseInt(ingvend_);
    }
    
    public void createCsvFile(){ 

    try{
        try (BufferedWriter StrW = new BufferedWriter(new FileWriter("C:\\Users\\Jéssica\\Desktop\\csv\\tabela.csv"))) {
            StrW.write("Nome do Filme;Data;Horario;Ingressos Vendidos;Sala\n"); 
            for(Sessao s : sessao){
                StrW.write(s.toString()+"\n");          //pega arraylist sessao entre virgulas
            }
        } 
    }catch (FileNotFoundException ex){
    }catch (IOException e){
    }
    }
}
